package Algorithm;

import java.util.Arrays;

public class ArraysIntroduce {
    public static void main(String[] args) {
        /*
        public static int[] copyof(原数组，新数组长度) 拷贝数组
        public static int[] copyofRange(原数组，起始索引，结束索引) 拷贝数组（指定范围）public static void fill(数组，元素) 填充数组
        public static void sort(数组) 按照默认方式进行数组排序
        public static void sort(数组，排序规则) 按照指定的规则排序
        */

        //toString：将数组变成字符串
        System.out.println("- ------toString--");
        int[] arr ={1, 2, 3,4, 5, 6, 7, 8, 9,10};
        System.out.println(Arrays.toString(arr));

        //binlbrySearch：二分查找法查找元素
        //binarySearch:二分查找法查投元素
        //细节1：二分查找的前提；数组中的元素必须是有序，数组中的元素必须是升序的
        //细节2：如果要查找的元素是存在的，那么返网的是真实的素引
        //但是，如果要查找的元素是不存在的、返回的是-插入点-1
        //为什么要减1呢？
        //解样：如果此时，我现在要查找数字0,那么如果近网的值是-插入点，建会出现问题了
        //如果要查找数字e，此时@是不存在的，但是按照上面的规则·插入点，应该就是·0
        //为了避免这样的情况，Java在这个基础上又减一
        System.out.println("-------- --------binarySearch-----");
        System.out.println(Arrays.binarySearch(arr, 10));
        System.out.println(Arrays.binarySearch(arr, 2));
        System.out.println(Arrays.binarySearch(arr, 20));

        //copyof：拷贝数组
        //包头不包尾
        System.out.println("-------- --------copy0f-------");
        int[] newArr1 = Arrays.copyOf(arr,2);
        System.out.println(Arrays.toString(newArr1));

        //copyofRange：拷贝数组(指定范围)
        System.out.println(". -copy0fRange--");
        int[] newArr2 = Arrays.copyOfRange(arr, 0, 9);
        System.out.println(Arrays.toString(newArr2));
    }
}
